Note context-aware widgets are a different type of widget which automatically react to changes in the current note.
Important aspects:
class and not an instance of the class
(e.g. no new) because it needs to be multiplied for each note,
so that splits work correctly.class is exported instead of an instance, the parentWidget getter
must be static, otherwise the widget is ignored.This is a note context-aware widget that simply displays the name the current note.
class HelloNoteDetail extends api.NoteContextAwareWidget {
constructor() {
super();
this.contentSized();
}
doRender() {
this.$widget = $("<div>");
}
async refreshWithNote(note) {
this.$widget.text("Current note: " + note.title);
}
static get parentWidget() { return "note-detail-pane" }
get position() { return 10 }
}
module.exports = HelloNoteDetail;
import { defineWidget, useNoteContext, useNoteProperty } from "trilium:preact";
export default defineWidget({
parent: "note-detail-pane",
position: 10,
render: () => {
const { note } = useNoteContext();
const title = useNoteProperty(note, "title");
return <span>Current note JSX: {title}</span>;
}
});